The present technology relates to a receiving apparatus which is configured to allow stable synchronization control, in particular, even in a multipath environment.
In the digital terrestrial multimedia broadcast (DTMB) standard (GB20600-2006), a predetermined pseudo-random noise (PN) sequence is added to a transmission frame.
FIG. 1 is a diagram illustrating a frame structure defined by the DTMB standard.
The DTMB frame structure is composed of four layers: Calendar Day Frame 10, Minute Frame 11, Super Frame 12, and Signal Frame 13, listed in the order from highest hierarchical level.
The lowest-level layer, Signal Frame 13, is composed of Frame Body 15 and Frame Header 14.
Frame Body 15 is made up of 3780 symbols in total, in which 36 symbols System information such as modulation type information, coded rate information, etc., and 3744 symbols data. The symbol rate for Frame Body 15 is defined as 7.56 Msps, and therefore the time duration of Frame Body 15 is 500 μs.
Frame Header 14 is a predetermined PN sequence of 420 symbols long (about 55.6 μs), 595 symbols long (about 78.7 μs), or 945 symbols long (about 125 μs).
Super Frame 12 is made up of as many Signal Frames 13 as necessary for the total time duration of the Signal Frames to be 125 ms.
Minute Frame 11 is made up of 480 Super Frames 12, and has a time duration of 1 minute.
Calendar Day Frame 10 is made up of 1440 Minute Frames 11, and has a time duration of 24 hours.
In this specification, hereinafter the term “frame” is used in referring to “Single Frame 13”.
It is known that a DTMB compliant receiver controls various synchronizations such as carrier synchronization and symbol timing synchronization, by generating correlation values with a PN sequence, which correlation values are a result of a convolution operation between received data and a PN sequence generated by the receiver, and using a correlation value of a predetermined position based on a position at which a correlation value power takes a peak value during a single frame length.
FIG. 2 is a diagram illustrating a structure of a PN correlation operation unit 20 which receives a DTMB signal, calculates a correlation value with a PN sequence, and outputs a correlation value of a predetermined position based on a power peak position.
Input data D(n) received by the PN correlation operation unit 20 is input to a convolution operation unit 21. The convolution operation unit 21 performs a convolution operation between the input signal D(n) and PN(k) which is the entire or a part of a PN sequence defined by the DTMB standard. Assuming that the length of the PN sequence used for calculation of a correlation value is L symbols long, a correlation value Corr(n), which is an output signal from the convolution operation unit 21, is represented by Equation (1) as follows:
                              Corr          ⁡                      (            n            )                          =                              ∑                          k              =              1                                      L              -              1                                ⁢                                    PN              ⁡                              (                k                )                                      ·                          D              ⁡                              (                                  n                  -                  k                                )                                                                        (        1        )            
The convolution operation unit 21 outputs the Corr(n), which is a result of the convolution operation, to both a power calculation unit 22 and a correlation value output unit 28.
The power calculation unit 22 calculates a power Pow(n) from the Corr(n) that is an input signal from the convolution operation unit 21, and outputs the Pow(n) to a peak position search unit 23. The Pow(n) is represented by Equation (2) as follows:Pow(n)=|Corr(n)|2  (2)
The peak position search unit 23 outputs m, which indicates a current symbol position, to the correlation value output unit 28. Furthermore, the peak position search unit 23 outputs a peak position Pos_max, at which the Pow(n) that is an input signal from the power calculation unit 22 is at a maximum during a single frame length, to the correlation value output unit 28, where the symbol position m takes on values from 0 to FLEN−1, and FLEN indicates a frame length.
The peak position search unit 23 is made up of a control unit 24, a symbol counter 25, a power holding unit 26, and a symbol position holding unit 27.
When receiving the Pow(n) obtained by the power calculation unit 22, the control unit 24 instructs the symbol counter 25 to increment the symbol position m. Subsequently, the control unit 24 compares the Pow(n) thus received with a power Pow_larger held by the power holding unit 26. If the Pow(n) is greater, the control unit 24 instructs the power holding unit 26 to replace the Pow_larger with the Pow(n), and further instructs the symbol position holding unit 27 to replace a symbol position Pos_larger, which is currently held by the symbol position holding unit 27, with the symbol position m. In this way, the control unit 24 updates the symbol position Pos_larger to that associated with larger power.
Every time the control unit 24 applies the aforementioned process to input data during a single-frame length which ranges from m=0 to m=FLEN−1, the control unit 24 outputs Pos-max as Pos_larger.
The symbol counter 25 holds a symbol position m which is instructed by the control unit 24 to be incremented or to be initialized to 0 (zero). The symbol counter 25 outputs the symbol position m held thereby to the correlation value output unit 28.
The power holding unit 26 holds a power Pow_larger. In response to an instruction from the control unit 24, the power holding unit 26 performs replacement of a power to be held so as to be Pow_larger=Pow(n).
The symbol position holding unit 27 holds a symbol position Pos_larger. In response to an instruction from the control unit 24, the symbol position holding unit 27 performs replacement of a symbol position to be held so as to be Pos_larger=m, or performs initialization of a symbol position to be held so as to be Pos_larger=0.
FIG. 3 is a flowchart explaining how the peak position search unit 23 operates.
In step S11, the control unit 24 determines whether or not a new Pow(n) is input from the power calculation unit 22.
If it is determined in step S11 that a new Pow(n) is not input, the control unit 24 waits until a new Pow(n) is input.
On the other hand, if it is determined in step S11 that a new Pow(n) is input, the control unit 24 instructs the symbol counter 25 to initialize the symbol position m to 0 (zero) in step S12.
In step S13, the control unit 24 instructs the symbol position holding unit 27 to initialize the symbol position Pos_larger to 0 (zero).
In step S14, the control unit 24 instructs the power holding unit 26 to initialize the power Pow-larger to Pow(n).
In step S15, the control unit 24 determines whether or not a new Pow(n) is input.
If it is determined in step S15 that a new Pow(n) is not input, the control unit 24 waits until a new Pow(n) is input.
On the other hand, if it is determined in step S15 that a new Pow(n) is input, the control unit 24 instructs the symbol counter 25 in step S16 to increment the symbol position m by one.
In step S17, the control unit 24 determines whether or not the Pow(n) is greater than the Pow_larger which is currently held by the power holding unit 26.
If it is determined in step S17 that the Pow(n) is not greater than the Pow_larger, the process branches to step S20.
On the other hand, if it is determined in step S17 that the Pow(n) is greater than the pow_larger, the control unit 24 instructs the symbol position holding unit 27 to replace the symbol position pos_larger with m in step S18.
In step S19, the control unit 24 instructs the power holding unit 26 to replace the power Pow_larger with the Pow(n), and branches the process to step S20.
In step S20, the control unit 24 determines whether or not the symbol position m in the symbol counter 25 is FLEN−1.
If it is determined in step S20 that the symbol position m in the symbol counter 25 is not FLEN−1, the control unit 24 returns the process to step S15, and repeats the processing steps from step S15 to step S20 until the symbol position m is determined to be FLEN−1.
On the other hand, if it is determined in step S20 that the symbol position m in the symbol counter 25 is FLEN−1, the control unit 24 performs update to the output value Pos_max as a symbol position Pos_larger in step S21.
Through the processing steps described above, a peak position Pos-max, at which the input power is at a maximum during a single-frame length, is determined. After step S21 is processed, the process returns to step S11, and a process of searching for a peak position is performed on the input power during a next frame length.
The correlation value output unit 28 illustrated in FIG. 2 outputs a correlation value Corr_p of a predetermined position d based on a peak position that a subsequent synchronization circuit requests, based on Corr(n) that is an input signal from the convolution operation unit 21, a symbol position m and a peak position Pos_max that are input signals from the peak position search unit 23.
The correlation value output unit 28 contains a control unit 29 and a correlation value buffer 30.
The correlation value buffer 30 is a buffer for one frame length Corr_buf(k) (0≦k≦FLEN−1). Writing data to the correlation value buffer 30 and reading data from the correlation value buffer 30 are performed according to an instruction from the control unit 29.
When receiving Corr(n) which is an input signal from the convolution operation unit 21, the control unit 29 writes Corr_buf(m)=Corr(n) to the correlation value buffer 30 using the symbol m as an address.
Furthermore, when receiving Pos_max from the peak position search unit 23, the control unit 29 reads a correlation value of a predetermined position d based on the peak position Pos_max from the correlation value buffer 30 as described in Equation (3) given below, and outputs the correlation value to a subsequent circuit.Corr—p=Corr_buf((Pos_max+d)% FLEN)  (3)
FIG. 4 is a flowchart explaining how the correlation value output unit 28 operates.
In step S31, the control unit 29 determines whether or not a new Corr(n) is input from the convolution operation unit 21.
If it is determined in step S31 that a new Corr (n) is not input, the control unit 29 waits until a new Corr(n) is input.
On the other hand, if it is determined in step S31 that a new Corr(n) is input, then the control unit 29 determines whether or not a new Pos_max is input from the peak position search unit 23 in step S32.
If it is determined in step S32 that a new Pos_max is not input, the control unit 29 branches the process to step S34.
On the other hand, if it is determined in step S32 that a new Pos_max is input, the control unit 29 reads a correlation value, which a subsequent circuit requests, of a predetermined position d based on the Pos_max from the correlation value buffer 30 in step S32, then outputs the correlation value to a subsequent circuits, and branches the process to step S34.
In step S34, the control unit 29 writes the correlation value Corr(n) to the Corr_buf(m) that is an address m of the correlation value buffer 30. After step S34, the process returns to step S31, and the processing steps above are repeated.
Through the processing steps above, it is possible, based on the symbol position m and the peak position Pos_max, to output a correlation value of a position that is shifted by d symbols from the predetermined position based on a peak position Pos_max that a subsequent synchronization circuit requests.
FIG. 5 is a timing chart explaining how the PN correlation operation unit 20 operates in a single wave environment with no multipath.
As an output example for a peak position Pos_max, there is shown a correlation value Corr_p of the peak position Pos_max. In a single wave environment, a power Pow (n) usually takes its maximum at a symbol position Path1 in which a path exists, and the same correlation value Corr_buf (Path1) is output constantly as a correlation value Corr_p (see, for example, Dazhi He, Weiqiang Liang, Wenjun Zhang, Ge Huang, Yunfeng Guan, Feng Ju, “Error rotated decision feedback equalizer for Chinese DTTB Receiver”, Broadband Multimedia Systems and Broadcasting, 2008 IEEE International Symposium on; Liu, M., Crussiere, M., Helard, J.-F., “A Combined Time and Frequency Algorithm for Improved Channel Estimation in TDS-OFDM”, Communications (ICC), 2010 IEEE International Conference on; and Zi-Wei Zheng, Zhi-Xing Yang, Chang-Yong Pan, and Yi-Sheng Zhu, Senior Member, IEEE, “Novel Synchronization for TDS-OFDM-Based Digital Television Terrestrial Broadcast Systems”, IEEE TRANSACTIONS ON BROADCASTING, VOL. 50, NO. 2, JUNE 2004).